Целое число, предствленое в двоичной системе счисления, модуль которого непревышает двоичного числа 1111111, вводиться в вещественную переменную. Необходимо вывести на экран значение этого числа в 10-й системе счисления как значение целочисленной переменной. Предусмотреть проверку правильности ввода информации — Delphi(Делфи)

procedure TForm1.Button1Click(Sender: TObject);
var
  i, j: Byte;
  r: Real;
begin
  // Проверяем правильность -----------------------------------------------------------
  if Length(Edit1.Text) > 7 then
  begin
    ShowMessage('Слишком много ввели. Не более 7 символов');
    Exit;
  end;
  if Edit1.Text = '' then
  begin
    ShowMessage('Введите хоть что-нибудь');
    Exit;
  end;
  i := 0;
  repeat
    Inc(i);
    if (Edit1.Text[i] <> '0') and (Edit1.Text[i] <> '1') then
    begin
      ShowMessage('Вводить нужно "0" или "1"');
      Exit;
    end;
  until i = Length(Edit1.Text);

  // Преобразование -------------------------------------------------------------------
  r := 0;
  i := 0;
  repeat
    Inc(i);
    j := StrToInt(Edit1.Text[i]);
    r := r * 2 + j;
  until i = Length(Edit1.Text);
  Edit2.Text := FloatToStr(r);
end;

Leave a Comment

68 + = 77